iT邦幫忙

2024 iThome 鐵人賽

DAY 30
0
Software Development

RISC-V 與處理器之架構學習及應用系列 第 30

[Day30] 從抽象層次到效能改善

  • 分享至 

  • xImage
  •  

1. Abstraction

  • 程式的表示層級:
    • 高階語言程式 (例如 C):人類可讀的語言,易於撰寫但難以高效執行。
    • 組合語言程式 (例如 RISC-V):稍微接近硬體,易於機器理解,但需要較多的技術知識撰寫。
    • 機器語言程式 (RISC-V):直接在硬體上執行的語言,最難撰寫,但效率最高。

2. Language Execution Continuum

  • Interpreter (解釋器):一個程式,用來直接執行其他程式的源代碼。
    • 解釋高階語言(例如 Python, Java)時效率較低,但易於編寫。
    • 執行機器碼時效率最高,但難以編寫。
  • 翻譯 (Translation):將程式從一種語言轉換到另一種語言,以提高執行效率。

3. Interpretation vs. Translation

  • Interpreter (解釋器):直接執行源語言中的程式。
  • Translator (翻譯器):將程式從源語言轉換為另一個語言的等效程式。

4. Interpretation

  • 舉例:Python 程式 foo.py 會由 Python 解釋器讀取並執行。
  • Python 解釋器是一個程式,負責讀取和執行 Python 程式的功能。

5. Why interpret machine language in software?

  • 模擬器 (例如 VENUS RISC-V):適用於學習和除錯。
  • 蘋果 Mac 系統轉換案例:從 Motorola 680x0 指令集轉換到 PowerPC,讓程式保留了舊的機器碼和新的機器碼,並在必要時模擬舊的機器碼。

6. Interpretation vs. Translation

  • 解釋器較容易撰寫,因為更靠近高階語言。
  • 解釋器執行速度較慢(大約是翻譯的十分之一),但程式碼較小。
  • 翻譯/編譯的程式碼幾乎總是更高效,適合對性能要求高的應用,如操作系統。

7. Translation/Compilation and Open Source

  • 翻譯和編譯過程可以將程式的源碼隱藏,這在市場中有助於創造價值(例如,微軟保持其源碼秘密)。
  • 另一種模式是開放源碼,通過公開源碼來創造價值並促進開發者社群。

上一篇
[Day29] 總結與流程 (5/5)
系列文
RISC-V 與處理器之架構學習及應用30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言